package com.dcloud.streamweb.taskmanage.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: job_config
 * @Author: jeecg-boot
 * @Date:   2024-06-26
 * @Version: V1.0
 */
@Data
@TableName("job_config")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="job_config对象", description="job_config")
public class JobConfig implements Serializable {
    private static final long serialVersionUID = 1L;

	/**id*/
	@TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Long id;
	/**任务名称*/
	@Excel(name = "任务名称", width = 15)
    @ApiModelProperty(value = "任务名称")
    private String jobName;
	/**任务描述*/
	@Excel(name = "任务描述", width = 15)
    @ApiModelProperty(value = "任务描述")
    private String jobDesc;
	/**提交模式: standalone 、yarn 、yarn-session */
	@Excel(name = "提交模式: standalone 、yarn 、yarn-session ", width = 15)
    @ApiModelProperty(value = "提交模式: standalone 、yarn 、yarn-session ")
    private String deployMode;
	/**flink运行配置*/
	@Excel(name = "flink运行配置", width = 15)
    @ApiModelProperty(value = "flink运行配置")
    private String flinkRunConfig;
	/**sql语句*/
	@Excel(name = "sql语句", width = 15)
    @ApiModelProperty(value = "sql语句")
    private String flinkSql;
	/**checkPoint配置*/
	@Excel(name = "checkPoint配置", width = 15)
    @ApiModelProperty(value = "checkPoint配置")
    private String flinkCheckpointConfig;
	/**运行后的任务id*/
	@Excel(name = "运行后的任务id", width = 15)
    @ApiModelProperty(value = "运行后的任务id")
    private String jobId;
	/**1:开启 0: 关闭*/
	@Excel(name = "1:开启 0: 关闭", width = 15)
    @ApiModelProperty(value = "1:开启 0: 关闭")
    private Integer isOpen;
	/**1:运行中 0: 停止中 -1:运行失败*/
	@Excel(name = "1:运行中 0: 停止中 -1:运行失败", width = 15)
    @ApiModelProperty(value = "1:运行中 0: 停止中 -1:运行失败")
    private Integer status;
	/**批任务定时调度 如 0/20 * * * * ? 表示每20秒 执行任务 */
	@Excel(name = "批任务定时调度 如 0/20 * * * * ? 表示每20秒 执行任务 ", width = 15)
    @ApiModelProperty(value = "批任务定时调度 如 0/20 * * * * ? 表示每20秒 执行任务 ")
    private String cron;
	/**udf地址已经连接器jar 如http://xxx.xxx.com/flink-streaming-udf.jar*/
	@Excel(name = "udf地址已经连接器jar 如http://xxx.xxx.com/flink-streaming-udf.jar", width = 15)
    @ApiModelProperty(value = "udf地址已经连接器jar 如http://xxx.xxx.com/flink-streaming-udf.jar")
    private String extJarPath;
	/**最后一次启动时间*/
	@Excel(name = "最后一次启动时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "最后一次启动时间")
    private Date lastStartTime;
	/**最后一次日志*/
	@Excel(name = "最后一次日志", width = 15)
    @ApiModelProperty(value = "最后一次日志")
    private Long lastRunLogId;
	/**更新版本号 用于乐观锁*/
	@Excel(name = "更新版本号 用于乐观锁", width = 15)
    @ApiModelProperty(value = "更新版本号 用于乐观锁")
    private Integer version;
	/**任务类型 0:sql 1:自定义jar*/
	@Excel(name = "任务类型 0:sql 1:自定义jar", width = 15)
    @ApiModelProperty(value = "任务类型 0:sql 1:自定义jar")
    private Integer jobType;
	/**启动jar可能需要使用的自定义参数*/
	@Excel(name = "启动jar可能需要使用的自定义参数", width = 15)
    @ApiModelProperty(value = "启动jar可能需要使用的自定义参数")
    private String customArgs;
	/**程序入口类*/
	@Excel(name = "程序入口类", width = 15)
    @ApiModelProperty(value = "程序入口类")
    private String customMainClass;
	/**自定义jar的http地址 如:http://ccblog.cn/xx.jar*/
	@Excel(name = "自定义jar的http地址 如:http://ccblog.cn/xx.jar", width = 15)
    @ApiModelProperty(value = "自定义jar的http地址 如:http://ccblog.cn/xx.jar")
    private String customJarUrl;
	/**isDeleted*/
	@Excel(name = "isDeleted", width = 15)
    @ApiModelProperty(value = "isDeleted")
    private Integer isDeleted;
	/**创建时间*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
	/**修改时间*/
	@Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private Date editTime;
	/**creator*/
	@Excel(name = "creator", width = 15)
    @ApiModelProperty(value = "creator")
    private String creator;
	/**editor*/
	@Excel(name = "editor", width = 15)
    @ApiModelProperty(value = "editor")
    private String editor;
}
